package GerenciadorDeEscolas;

import java.util.ArrayList;

import java.util.List;

import GerenciadorDeEscolas.Matricula;
import GerenciadorDeEscolas.Validadores;


public class Aluno {
        private static List<Aluno> alunosCadastrados = new ArrayList<Aluno>();
        private String nomeDoAluno;
        private int idadeDoAluno;
        private String enderecoDoAluno;
        private String nomeDoPaiDoAluno;
        private String nomeDaMaeDoAluno;
        private String emailDoAluno;
        private String matriculaDoAluno;
        //private Turma turmaDoAluno;
        private Validadores valida = new Validadores();

        public Aluno(String nomeDoAluno, int idadeDoAluno, String enderecoDoAluno,
                        String nomeDoPaiDoAluno, String nomeDaMaeDoAluno,
                        String emailDoAluno) throws Exception {

                if (!valida.validaNome(nomeDoAluno)) {
                        throw new Exception("Nome do aluno invalido !");
                }
                if (!valida.validaNome(nomeDaMaeDoAluno)) {
                        throw new Exception("Nome da mae do aluno invalido !");
                }
                if (!valida.validaNome(nomeDoPaiDoAluno)) {
                        throw new Exception("Nome do pai do aluno invalido !");
                }

                if (!valida.validaEmail(emailDoAluno)) {
                        throw new Exception("Email do aluno invalido !");
                }
                if (idadeDoAluno < 0) {
                        throw new Exception("Idade do aluno invalida ! !");
                }
                if (!valida.validaEndereco(enderecoDoAluno)) {
                    throw new Exception("Endereco invalido!");
                }

                this.nomeDoAluno = nomeDoAluno;
                this.idadeDoAluno = idadeDoAluno;
                this.enderecoDoAluno = enderecoDoAluno;
                this.nomeDoPaiDoAluno = nomeDoPaiDoAluno;
                this.nomeDaMaeDoAluno = nomeDaMaeDoAluno;
                this.emailDoAluno = emailDoAluno;
                Matricula matricula = new Matricula();
                this.matriculaDoAluno = matricula.getNumeroDaMatricula();

        }

        public Aluno(String nomeDoAluno, String enderecoDoAluno,
                        String nomeDaMaeDoAluno, String emailDoAluno) throws Exception {

                if (!valida.validaNome(nomeDoAluno)) {
                        throw new Exception("Nome do aluno invalido !");
                }
                if (!valida.validaNome(nomeDaMaeDoAluno)) {
                        throw new Exception("Nome da mae do aluno invalido !");
                }
                if (!valida.validaEmail(emailDoAluno)) {
                        throw new Exception("Email do aluno invalido !");
                }
                if (idadeDoAluno < 0) {
                        throw new Exception("Idade do aluno invalida ! !");
                }
                if (!valida.validaEndereco(enderecoDoAluno)) {
                    throw new Exception("Endereco invalido!");
                }

                this.nomeDoAluno = nomeDoAluno;
                this.idadeDoAluno = -1;
                this.enderecoDoAluno = "-";
                this.nomeDoPaiDoAluno = "-";
                this.nomeDaMaeDoAluno = nomeDaMaeDoAluno;
                this.emailDoAluno = emailDoAluno;
        }
        /*
        public void matriculaAlunoNaTurma(Turma nomeDaTurma) {
                this.turmaDoAluno = nomeDaTurma;
                nomeDaTurma.setNumeroDeAlunos(nomeDaTurma.getNumeroDeAlunos() + 1);
                System.out.printf("Aluno matriculado com sucesso na turma %s",
                                nomeDaTurma.getNome());
        }*/

        public String getNomeDoAluno() {
                return nomeDoAluno;
        }

        public void setNomeDoAluno(String nomeDoAluno) {
                this.nomeDoAluno = nomeDoAluno;
        }

        public int getIdadeDoAluno() {
                return idadeDoAluno;
        }

        public void setIdadeDoAluno(int idadeDoAluno) {
                this.idadeDoAluno = idadeDoAluno;
        }

        public String getEnderecoDoAluno() {
                return enderecoDoAluno;
        }

        public void setEnderecoDoAluno(String enderecoDoAluno) {
                this.enderecoDoAluno = enderecoDoAluno;
        }

        public String getNomeDoPaiDoAluno() {
                return nomeDoPaiDoAluno;
        }

        public void setNomeDoPaiDoAluno(String nomeDoPaiDoAluno) {
                this.nomeDoPaiDoAluno = nomeDoPaiDoAluno;
        }

        public String getNomeDaMaeDoAluno() {
                return nomeDaMaeDoAluno;
        }

        public void setNomeDaMaeDoAluno(String nomeDaMaeDoAluno) {
                this.nomeDaMaeDoAluno = nomeDaMaeDoAluno;
        }

        public String getEmailDoAluno() {
                return emailDoAluno;
        }

        public void setEmailDoAluno(String emailDoAluno) {
                this.emailDoAluno = emailDoAluno;
        }

}